home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / scope / 051-075 / scopedisk66 / qrt15 / docs / addend12.doc < prev    next >
Text File  |  1995-03-19  |  4KB  |  133 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.         
  8.         
  9.         
  10.                            Addendum to QRT Version 1.2
  11.         
  12.         
  13.         
  14.         The following are changes to QRT made since version 1.1
  15.         
  16.         Additions and Enhancements
  17.         
  18.            Polygon Primitive Added to Pattern Command
  19.                
  20.                Patterns in version 1.1 could  include only rectangles and
  21.                circles;  a  new  polygon  command  vastly  increases  the
  22.                utility of the  pattern  command.   Polygons  may have any
  23.                number of points (at least  three),  but a large number of
  24.                points will increase the time 
  25.                taken for the  containment  test,  and  hence  the time to
  26.                complete the image.  A fast containment algorithm is used,
  27.                but it is still linear  in  the  number  of  points in the
  28.                polygon.  A practical limit 
  29.                might be 30 to 40 points (split  among all polygons in the
  30.                pattern).
  31.                
  32.                In order for the polygon command to operate correctly, the
  33.                first point must be the same as the last point.  ex:
  34.                
  35.                      PATTERN ( name    = TRIANGLE_TEST
  36.                                x_size  = 6
  37.                                y_size  = 6
  38.                
  39.                                POLYGON (
  40.                                  POINT = (0 , 0)
  41.                                  POINT = (5 , 0)
  42.                                  POINT = (2.5,5)
  43.                                  POINT = (0 , 0)  { same as 1st pt }
  44.                
  45.                                  { ** any number of additional points
  46.                                       could be added here ** }
  47.                                )
  48.                
  49.                                { ** more polygons or other pattern
  50.                                     primitives could come here     ** }
  51.                              )
  52.                
  53.                Polygon primitives may be  mixed  in a pattern with either
  54.                circles or rectangles.   If  a  rectangle  is desired, the
  55.                rectangle primitive is faster than a four point polygon.
  56.                
  57.                
  58.  
  59.  
  60.         QRT Ray Tracer               Page 1               Addendum to 1.2
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.         Bug Report
  74.         
  75.            One bug found in version 1.1  has  been  fixed.  The shadowing
  76.            routine in version 1.1  did  not  operate  quite correctly:  a
  77.            point was  (incorrectly)  computed  as  being in a shadow if a
  78.            line drawn from the point to  the  lamp  intersected an object
  79.            even on the other side  of  the  lamp.   The  test should have
  80.            looked at objects only on  the  same  side  of the lamp as the
  81.            point in question.  This  was giving  extra shadows in strange
  82.            places, and has been fixed in this version.
  83.            
  84.            
  85.         Planned Extensions for 1.3
  86.         
  87.            Version 1.3 will probably  include  a  better lexical analyser
  88.            that can cope  with  nested  comments  and  possibly  #include
  89.            files.  The  #include  directive  would  enable one to amass a
  90.            file of often  used  patterns,  for  example.   The  parser is
  91.            plenty fast enough (between 2  and  3 hundred lines per second
  92.            from RAM:) to make this practical.
  93.            
  94.            
  95.         Hints, Tips, etc.
  96.         
  97.            Try using a general purpose macro processor to pre-process QRT
  98.            input. #define BRICK_RED  (.8,  .2,  .1),  for example, or use
  99.            parameter macros to  #define  CYLINDER  (height,  diameter) to
  100.            eliminate the need for  entering  quadratic  coefficients.  (I
  101.            may add CYLINDER, CONE,  and  SPHEREOID  commands  to a future
  102.            version of QRT.   They  would  simply  map  into  the  current
  103.            quadratic primitive, but make QRT easier to use).
  104.              
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.         QRT Ray Tracer               Page 2               Addendum to 1.2
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.